#!/usr/bin/python3

from gi.repository import GLib
import sys
import dbus
import dbus.mainloop.glib

def mw_property_changed(name, value):
	if name == 'VoicemailMessageCount':
		print("MessageWaiting property: '%s' changed to '%d'" %\
			(name,value))
	else:
		print("MessageWaiting property: '%s' changed to '%s'" %\
			(name,value))

if __name__ == "__main__":
	dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)

	bus = dbus.SystemBus()

	manager = dbus.Interface(bus.get_object('org.ofono', '/'),
			'org.ofono.Manager')

	modems = manager.GetModems()

	mw = dbus.Interface(bus.get_object('org.ofono', modems[0][0]),
			'org.ofono.MessageWaiting')

	mw.connect_to_signal("PropertyChanged", mw_property_changed)

	properties = mw.GetProperties()

	print("Voicemail waiting: %s" % (properties['VoicemailWaiting']))
	print("Voicemail message count: %d" %\
		(properties['VoicemailMessageCount']))
	print("Voicemail mailbox number: %s" %\
		(properties['VoicemailMailboxNumber']))

	mainloop = GLib.MainLoop()
	mainloop.run()
